Targeted Video Advertising

ABSTRACT

A computer-implemented method of providing targeted video promotional material includes transmitting a promotional item for display on a video terminal, determining whether the promotional item was skipped, and updating a profile corresponding to the promotional item or a viewer of the promotional item based on whether or not the promotional item was skipped.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority under 35U.S.C. §120 to U.S. application Ser. No. 12/897,445, filed on Oct. 4,2010, which is a continuation of U.S. application Ser. No. 11/550,249,filed on Oct. 17, 2006, the entire contents of which are herebyincorporated by reference.

TECHNICAL FIELD

The disclosed implementations are generally related to selection ofpromotional materials for presentation during a video broadcast, such asan internet protocol television broadcast.

BACKGROUND

Television is often considered the greatest of the advertising mediums.

It has a vast audience. It can be a shared experience for many (e.g.,leading to water cooler talk the day after a big show). And it permits afull range of advertisements, with sound, color, and motion. Thus,despite inroads from other forms of advertising, televisions advertisingcontinues to lead many other advertising forms by generated revenue.More recently, other forms of video distribution have been developed,including on-line video and internet protocol television (IPTV), thatprovide experiences that share many of the elements of traditionaltelevision.

Traditional television advertising has its problems, however. It isgenerally segmented only by channel and timing, so that advertisementsare shown to a general audience that may include many disinterestedviewers and fail to include many interested viewers watching otherchannels. Thus, for example, even people who have no interest in aparticular prescription drug are shown an advertisement for the drug ifthey are on the right channel at the right time. This is bad for theviewer because they may have to watch a commercial in which they aredisinterested, it is bad for the advertisers because they get little tono benefit from such viewers, and it is bad for the broadcasters becauseadvertisers will not want to pay more money if they are getting littleto no additional benefit.

Also, for the most part, television advertising occurs via 15-second,30-second, or 1-minute standard commercials at relatively set pointsduring a program. For example, many programs start with a teaser, haveseveral commercials, run for about 10 minutes, have another commercialbreak, and run about another 10 minutes before taking another commercialbreak. While these set breaks are good for people who want to snack oruse the restroom, and they may capture the attention of some people,they might not be the most conducive way to get the advertisingattention of other viewers.

SUMMARY

This document describes techniques for providing targeted promotionalmaterial to viewers of a video system. In general, a viewer'sinteractions with particular advertisements may be monitored, such asthe advertisements the user skips, and the system may then select otheradvertisements that are determined to be more like advertisements theuser has watched and less like those the user has skipped. Whilecommercial skipping is anathema to most television systems, it may beused as a positive feature of certain implementations disclosed here.

In one implementation, a computer-implemented method of providingtargeted video promotional material is disclosed. The method comprisestransmitting a promotional item for display on a video terminal,determining whether the promotional item was skipped, and updating aprofile corresponding to the promotional item or a viewer of thepromotional item based on whether or not the promotional item wasskipped.

The profile may be updated in some implementations if a portion of thecommercial was displayed and a portion skipped. The method may alsocomprise determining an identity of a viewer of the video terminal. Theprofile may correspond to a commercial, and the profile may be updatedto make the display of the commercial less likely to appear to viewershaving characteristics like those of the viewer of the video terminal ifthe commercial is skipped. The promotional item may also be transmittedas part of a real-time streaming video broadcast.

In some aspects, the method may further comprise transmitting afollow-up promotional item for display to replace a skipped promotionalitem. The method may also include transmitting commercials for displayas a fixed-size time block, and transmitting a replacement commercialfor each commercial in the block that is skipped. Moreover, the methodmay comprise associating one or more attributes with a promotional item,and changing one or more corresponding attributes for a user based onwhether the promotional item is viewed or skipped.

In another aspect, the method may comprise associating one or moreattributes with a user, and changing one or more correspondingattributes for a promotional item based on whether the commercial isviewed or skipped. The profile of the various methods may corresponds toa viewer and be associated with a single session of a viewing device.Moreover, the method may also comprise transmitting a plurality ofpromotional items until a predetermined number of promotional items isnot skipped, and limiting the number of times a promotional item can bedisplayed to a viewer.

In yet another aspect, the method may comprise associating aviewer-ranked rating with a promotional item and showing the rating to aviewer before or while displaying the promotional item. The method mayalso include determining when the promotional is skipped and associatingthe determination of when the promotional item is skipped with a scorefor the promotional item. In addition, the method may include selectinga promotional item for display by comparing a viewer profile to aprofile for the promotional item, and updating the profile of thepromotional item in an inverse relationship to the viewer profile if thepromotional item is skipped.

In another example, a computer-implemented system for providing targetvideo promotional material is disclosed. The system comprises apromotional item database storing promotional items to be displayed to aviewer of a video display system, a promotional item viewer monitorconfigured to report the occurrence of a skipping of a promotional itemby a viewer, and a promotion profile generator that modifies a profileassociated with the promotional item when the promotional item viewermonitor indicates that the item has been skipped. The promotional itemviewer monitor may report that a promotional item has been skipped whena view watches less than a predetermined portion of the promotionalitem. Also, the promotional items can include a plurality of videocommercials, and the promotion profile generator can modify the profileassociated with the promotional item.

In yet another implementation, an electronic system for providingtargeted video promotional material is disclosed. The system comprises acommercial database containing a plurality of commercials associatedwith one or more commercial parameters, an advertising server configuredto select commercials for display on remote video terminals and todetermine when commercials have been skipped in whole or in part, andmeans for updating a demographic profile corresponding to a user or acommercial based on commercial skipping activity of the user.

This and other implementations may be found in the description below.Other implementations are contemplated, and may be implemented using theconcepts discussed here.

DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram of a system to identify and selectpromotional material for a viewer of a video program.

FIGS. 2A-C show exemplary processes that a video delivery system may useto generate profiles for items and users.

FIG. 3 shows an exemplary timing diagram that illustrates a timeline ofa 30-minute television program.

FIGS. 4A-B show two exemplary video delivery systems for selecting andpresenting video programs and promotions.

FIG. 5 shows an exemplary advertising profile and some values for eachfields in the profile.

FIG. 6 is a flow chart of an example of a method of operations forpresenting a video program and item to a viewer of a video deliverysystem.

FIG. 7 is a screen shot of an exemplary video display with advertising.

FIG. 8 is a schematic diagram of a general computer system.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG. 1 is a conceptual diagram of a system 100 to identify and selectpromotional material for a viewer 104 of a video program. In general,the figure shows a queue of candidate commercials or other forms ofpromotional materials 102 a-102 d in line to be shown to a viewer 104 ofa video monitor such as a television or computer, with the viewer 104using a device like a remote control 110 to skip or otherwise reject, orto accept or view certain commercials. Based on the user's behavior withrespect to the earlier commercials, e.g., watching or skipping them, thesystem may select advertisements in the queue, or advertisements to addto the queue to show the viewer. Generally, the selected advertisementswill have one or more features in common with advertisements that theviewer 104 watched, and the rejected advertisements will have featuresunlike the advertisements that the viewer 104 watched and/or similar tothose advertisements the viewer 104 skipped or otherwise disapproved of.

The exemplary video delivery system 100 may operate through videoprograms shown on a television, on a computer, on a television providedwith a peripheral like a IPTV or cable box, or other appropriatestructures. The delivered video may also take various forms, such as astreaming video, a stored program such as material on a personal videorecorder, or material on various forms of volatile or non-volatilemedia. The material may also take the form of movies, televisionprogram, shorts, commercials, and other video programming (which may beaccompanied by audio).

The video delivery system 100 includes promotional items 102 a-d and112-128, that may be in the form of standard video commercials, bannerads, float over ads (e.g., ads that are displayed over an running videoimage), or audio-only ads, among other formats. Based on somecharacteristics of the promotional items 102 a-d and 112-128, the videodelivery system 100 may select and present a particular item that may betargeted to viewer 104. The characteristics tracked by the videodelivery system 100 may include, for example, a product or service type(e.g., a so-called vertical) being promoted (e.g., car, personal careproduct, pharmaceutical, insurance, investments, etc.), a genre or styleof the advertising materials (e.g., informative, romantic, comedic,off-beat, action-packed, etc.), the visual impression of the item (e.g.,bright/dark, loud/soft, high/low-energy, etc.), and/or other relevantattributes.

The items 102 a-d and 112-128 in the depicted example are shown forillustration to have two relevant attributes: one attribute representedby shapes of the items 102 a-d and 112-128, and another attributerepresented by a number in the shapes. For example, the shape of an itemmay represent a promotional format, such as a banner ad, a survey, or astandard commercial of a particular length. The number in the item mayrepresent a “style” of the ad, such as action, informative, or romantic.Thus, for example, a square with a number 1 in it may represent a30-second commercial in an informative style, while a square with anumber 4 in it may represent a 30-second commercial in an action style.

In some implementations, the system 100 may store data indicatingreactions of the viewer 104 to promotional items shown to the viewer104. Based on reactions, the video delivery system 100 generates aprofile of the viewer 104 that may represent the preferences of theviewer 104 as inferred by the viewer's reaction to content and perhapsfrom explicit information provided by the viewer (e.g., age, gender,etc.). Then, the video delivery system 100 may select promotional itemsfor the viewer 104 based on the generated viewer profile.

The conceptual representation of the video delivery system 100 shows anaccept bin 106 and a discard bin 108. When the viewer 104 skips apromotional item, the item is shown as being placed in the discard bin108 (via the path labeled “N”) because it is inferred that the viewer104 did not like the item. For example, the viewer 104 may use a remotecontrol 110 (e.g., by selecting a “skip” button in the remote control110) to skip a currently shown item. The system 100 may use variousapproaches to reflect the user's discard action, as discussed in moredetail below, such as by modifying a profile of the user so that thecharacteristic stored for the user are driven away from characteristicsassociated with the rejected item. The user reaction may also bereflected in a non-personal, aggregated manner with other userreactions, such as to provide an item with a rating or popularity score,to be used in future decisions about displaying the item.

If the viewer 104 watches an item, the item is shown as being placed inthe “accept” bin 106 (via the path labeled “Y”). And again, the system100 may provide for mechanisms for reflecting the acceptance of an itemby the viewer 104. Mechanisms for the video delivery system 100 todetermine whether a item is watched or skipped are described in furtherdetails with reference to FIG. 6.

For an exemplary system orientation, assume that a square in FIG. 1represents a 30-second commercial, a hexagon represents a 15-secondcommercial, a triangle represents a user survey, and a circle representsa banner ad. Also, assume that a number 1 represents an informative ad,a number 2 represents a romantic ad, a number 3 represents a comedic ad,and a number 4 represents an action ad.

In the depicted example, the discard bin 108 includes two items 112, 114with a format represented by a triangle (user survey) and a stylerepresented by a number 1 (informative), an item 116 with a triangle(user survey) and number 2 (romantic), an item 118 with a circle (bannerad) and number 2 (romantic), and an item 120 with a circle (banner ad)and a number 3 (comedic). The accept bin 106 includes an item 122 with asquare (30-second commercial) and a number 3 (comedic), an item 124 witha triangle (user survey) and a number 4 (action), an item 126 with asquare (30-second commercial) and a number 4 (action), an item 128 witha hexagon (15-second commercial) and a number 2 (romantic).

The video delivery system 100 selects items to display or play fromcandidate promotion items 102 a-d based on the information derived fromthe earlier actions of the user. For example, from the limited data inthe exemplary system, a determination may be made that viewer 104 likescommercials (squares and hexagons), likes action (number 4), and doesnot like informative ads (number 1). In a typical system, more data maybe available so as to make more certain determinations about a viewer'spreferences.

Using this information, the video delivery system 100 may accept certainitems and not accept others for future display to the viewer 104. Theselected items 102 a, 102 b that would be shown in the example are shownwithout “X's” over them, while the items 102 c, 102 d that would not bepresented to the viewer 104 are shown with “X's” over them in thefigure. The selection of items to display may occur in a number ofmanners, as described in more detail below. For example, items maysimply be downloaded by a service to a viewer's television or computer,and selections may be made from such items being held in a queue, asshown conceptually in the figure. Alternatively, information aboutitems, such as an item profile, may be analyzed before an item istransmitted to a viewer's video device so as to minimize the need fortransmission bandwidth. In such a situation, there would not be a queueof items; rather, the queue is shown in FIG. 1 for conceptual purposesas an aid in better understanding the operation of the system.

In the pictured example, item 102 c has characteristics represented by anumber 1 (informative) and a circle (banner ad), and has been by-passedbecause it is believed that viewer 104 does not like informative ads.Item 102 d has characteristics represented by a number 1 (informative)and a triangle (user survey), again because the user does not likeinformative ads, and perhaps also because the user has a tendency biasedaway from surveys (as indicated by prior rejections of two surveys andacceptance of only one).

The video delivery system 100 may select item 102 b to be presentedbecause, for example, it has the same characteristics as an item 128that was already accepted, and/or because its two characteristics, whencombined, show a bias toward acceptance. In some instances, one factoralone may not be enough to accept or block an advertising material. Forexample, item 102 a is set to be presented even though its format(circle=banner ad) shows up exclusively in reject bin 108, because itsstyle (four=action) shows up exclusively in accept bin 106.

In addition, certain items may be provided with an override indicator(which could comprise setting all characteristics to a particular valuesuch as zero) and may be presented to viewer 104 even regardless of thecharacteristics of the items. Such items may include, for example,national security announcements, promotions for other programs from acommon broadcaster, and promotions for which an advertiser has paid apremium. The “forced” score for such items will require them to be shownat a particular time or with a particular frequency, apart fromcharacteristics of a particular viewer or group of viewers.

Also, although FIG. 1 is relatively static of necessity, the entiresystem may be updated and otherwise affected during its operation. Forexample, when items 102 a, 102 b are provided to viewer 104, the viewer104 may accept or reject them. For example, if viewer 104 rejects item102 a, the system may adjust a profile for viewer 104 so that it wouldbe unlikely that the viewer 104 would be shown another banner ad, atleast not for a certain time period (if the system permits fortime-based decay of certain profile parameters so that a user is notlocked into long-ago decisions, and also to ensure that improperinferences are not made by the system and locked in for a long time).

In addition, decisions about whether to present an item to viewer 104may be made based on a mixture of many different parameters. In thismanner, one factor may be prevented from overly affecting a presentationdecision. In addition, use of additional parameters may permit certainparameter to “re-enter” a viewer's system if appropriate. For example,where a single parameter controls, a system may stop a user from seeinginformative advertisements if the user coincidentally rejects a numberof informative advertisements, even if the user rejected them for adifferent reason. Where multiple parameters are used, future informativeads might be allowed to “sneak” through by the system, and the user maychoose to watch them, and the scoring for that parameter maysubsequently be affected so more ads of a similar style are shown to theviewer.

Various other mechanisms for affecting the correlation between expressand implied viewer preferences and characteristics of promotional itemsare described in more detail in the following figures.

Decisions about various promotional items may also be aggregated acrossmultiple viewers, including across all or substantially all of the usersof a video distribution service. For example, reactions to commercials,both positive (i.e., a viewer watched all or substantially all of thecommercial) and negative (i.e., the viewer chose to skip all or part ofthe commercial) may be aggregated to provide a score or other type ofranking for a commercial. The score, in some embodiments, may be basedon a level of match between a list of keywords associated with a vieweror with a program being viewed, and keywords associated with thecommercial. For example, a beer advertiser may associate keywords like“beer,” “football,” “sports,” and “comedy” with an advertisement. Videoprograms may likewise be associated with keywords, such as through a“tagging” process by which a submitter of the video or viewers of thevideo assign tags to the program. Advertisements may be selected to beshown during the program using such tags or keywords. In a like manner,a viewer may identify keywords that identify himself or herself, and/orcertain keywords may be associated with a user by the system, such askeywords correlating to programs or advertisements that the viewerwatches.

The score may also be based in whole or in part on the number of timesthe commercial is watched when multiple commercials are presented tousers for selection. Specifically, the score may relate to keywordsassociated with a commercial plus a “watch fraction,” that measures thetotal number of times a commercial is watched for a particular keywordor other factor, divided by the total number of times all presentedcommercials are watched. The score may also be based on a comparison oftimes a commercial is watched divided by the number of times thecommercial has been displayed as an option to users (i.e., using thenumber of “impressions” to compute a watched-divided-by-impressionsfraction). Other various appropriate measures of popularity orsuitability may also be employed.

The information about preferences may be collected for various viewingperiods. For example, viewing data may be accumulated for a singlesession, such as by matching information to a session identifier. Suchan identifier may be made anonymous but still obtain adequateinformation to make for a more enjoyable viewing session for a user.Alternatively, information may be accumulated across multiple sessions.Viewers may also be given an opportunity to select whether informationwill be accumulated for only a single session or for multiple sessions.

In addition, certain techniques may be used to prevent some promotionalitems from being shown to a user many times, for example, by frequencycapping items. Repeated viewing of a single item is not good for theviewer or for the advertiser. Such an approach of limiting the frequencywith which an item is shown may be particularly appropriate where thepool of relevant items is small. The level of capping may be dependenton the size of the relevant pool, so that capping occurs before the poolis empty, or so that previously rejected items may be preferred overaccepted items that have already been displayed. The rejected item, fromthe pool of rejected items, that most closely matches items that havebeen accepted, may be the item shown to a user in such a situation.

FIGS. 2A-C show exemplary processes that a video delivery system may useto generate profiles for promotional items and users. In FIGS. 2A and2B, processes are shown by which a system can use the characteristics ofa known entity to apply characteristics to an unknown entity—from usersto promotional items, or from promotional items to users. Specifically,in FIG. 2A a new advertisement enters a system without any sort ofprofile, and is ultimately assigned a profile that matches the profilesof viewers who watch the advertisement, and that does not match theprofiles of viewers who reject the advertisement. Thus, thecharacteristics of known viewers may be applied to unknown promotionalitems. In FIG. 2B, a new viewer for whom the system has little or noinformation is assigned a profile as the viewer accepts or rejects knownpromotional items. When a viewer or promotional item is too new for thesystem to have reasonable certainty about its profile, it may be givenno profile and may otherwise be treated without respect to any profile;for example, a new commercial may be shown to users having all profiles.

Alternatively, a system may select particular viewers for a new item orparticular items for a new viewer so as to more quickly produce a goodprofile. For example, a new item may be shown to viewers having a rangeof profiles, or to viewers having very extreme profiles—the formerperhaps permitting a more accurate characterization, and the latterperhaps permitting a more rapid characterization. For example, someviewers may have profiles that indicate they never want to watch ainformative commercial, but would instead watch only comedic ads, whileother viewers may be just the opposite. Such viewers may be chosen fornew commercials because their reactions with respect to the “style” ofthe commercial can be expected to be definitive, and thereby to permitready classification or profiling of the commercial. Equally definitiveviewers may be chosen for other parameters, so as to quickly profile anitem across all parameters.

FIG. 2A shows an exemplary process 200 that a system, such as videodelivery system 100, may use to characterize unprofiled commercials. Forexample, an advertiser may provide an unprofiled commercial to the videodelivery system 100 for presentation. In other examples, the videodelivery system 100 may reset a profile of a commercial when, forexample, the video delivery system 100 determines that the existingprofile is inaccurate. The video delivery system 100 may follow theprocess 200 to assign attributes to parameters of commercials (or otherpromotional items).

In some implementations, the system 100 can assign attributes tocommercials based on reactions given to the commercials by multipleusers. In the depicted example, the process 200 includes three originalcommercials 202 a, 202 b, 202 c that enter the system unprofiled, withno values assigned to their various profile parameters. In the depictedexample, three parameters are shown—with two of the parameters depictedas slider bars, and one depicted as terms representing particular genres(such as in the form of keywords). The slider bars may represent avalue, such as a value between 1 and 100 showing the commercial'ssimilarity for a particular parameter. For example, one parameter may be“action,” with low values representing that the commercial is perceivedto have little action, and a high value representing that viewersperceive the commercial to have a high level of action.

The second slider may represent the loudness, or volume, of thecommercial. Although television volume generally is capped at somemaximum value, some commercials may sound louder than others becausethey have a sustained volume near the maximum. Research may find thatcertain viewers have particular preferences for action and volume, andso these parameters may be assigned to commercials (and to viewers) tohelp match commercials to those preferences of viewers. For otherattributes, the video delivery system 100 may assign discrete values(e.g., binary values or multiple choice values) to indicate anattribute. For example, a gender attribute would have only two values,while the final value shown in FIG. 2A shows multiple choice values.

As would be understood, various other parameters may also be assigned.Also, in a relatively simple implementation, a viewer's preference for aparticular item may be tracked, so that the item is not shown to theuser again if the user rejects it (unless there are no other items toshow to the user because the user has skipped everything). In such asituation, one could consider an item to have a single binary parameterfor each user.

Certain parameters can also be defined or inferred from sources otherthan reactions by viewers to certain items. For example, a geography maybe associated with a user, such as by an IP address for the user, anditems may be selected using such information. For example, people from acertain area may be known to respond better to certain types ofadvertisements. Or, perhaps Dinty Moore wants to run advertisements forspicy chile in Dallas, and a corresponding advertisement for mild chilein Minneapolis. Such location information may also permit particularlanguages to be identified with an advertisement, or a language of a webbrowser or other program from which a video request is made may be usedto select an advertisement. Also, it may be particularly helpful, in aninternationalized system, to know the country from which a requestoccurs, as for example, Chevrolet would not want to run ½-ton pick-upadvertisements in France, Japan, or even England. Such parameters forcommercials, which effectively define necessary delivery mechanisms fora advertisement, may be programmed to override parameters that reflectonly viewer preferences.

Other parameters may be explicitly assigned by users, either tothemselves or to items. For example, tags, comments, and ratings, all intheir well-known on-line forms, may be applied to provide for richerclassification of on-line videos and items. Such information (asaggregated from multiple users) may also be displayed along with anadvertisement or with a preview (such as a frozen frame) of anadvertisement. In this manner, a user could, for example, see a ratinglevel (e.g., 1 to 5 stars) that other users have provided to anadvertisement as the user first starts to view the advertisement or evenbefore viewing the advertisement (e.g., where an incoming queue ofadvertisements is displayed for a user). A user may also identifythemselves with a group that is in turn associated with a parameter suchas ratings. For example, a teen may be interested in advertising ratingsfrom other teens rather than from senior citizens (as may a seniorcitizen who is young at heart), and may thus identify themselves as ateen to be part of such a group.

The items may also be provided with third-party ratings, such as thefamiliar movie rating system of G, PG, R, etc. Users or guardians ofusers may then select a rating level or maximum rating level for itemsto be displayed. Where no level is explicitly selected, a level may beinferred, such as with other parameters.

Following the process 200, a video delivery system presents theunprofiled commercials 202 a-c to multiple users of known profiles 206a-d, and collects those users' reactions so as to assign attributevalues to the commercials 202 a-c. In the depicted example, the process200 can iteratively adjust the assigned attribute values. As shown, theuser profiles 206 a-d are known and accessible by the process 200. Eachof the user profiles 206 a-d is represented by slider bars 210 thatindicate a value for the two top attributes characterizing thecommercials 202 a-c. Using the reactions of the users and the userprofiles 206 a-d, the process 200 may iteratively estimate the attributevalues that approximate characteristics of the commercials 202 a-c, bypushing the relevant attribute values away from values held by users whoskip the commercials and toward values of users who watch thecommercials. The amount that an attribute value is changed for aparticular commercial may be a factor of how many times the commercialhas been presented (with smaller changes in values when the commercialhas been presented many times), how strong the preferences are for aviewer who accepted or rejected the commercial (e.g., how far from amiddle value the viewer's value for an attribute is), and how far theviewer's value for an attribute is away from the commercial's value,among others.

One or more attributes, such as the topic of commercials 202 a-c may bestatic. In the example, one commercial is about cars, another aboutmovies (e.g., a movie trailer), and one about sports (e.g., a promotionfor a playoff game). These attributes may be set by the advertisers orby others, and may be used to match the commercials 202 a-c withviewers. The other attributes, such as those shown by the sliders, mayalso be pre-assigned so that a commercial has an initial profile. Thosefactors may also be set or may be allowed to change as viewers accept orskip the commercials.

In the process 200, the commercials 202 a-c are shown entering the topof the figure without any attributes for particular parameters. Eachcommercial is shown stepping down the page after being shown to, andreceiving a reaction from, one of four different viewers. As thecommercials progress downward, they pick up the profiles of viewers whoreact positively, and they move away from the profiles of viewers whoreact negatively.

The commercials 202 a-c may first be presented to a user associated withthe user profile 206 a. The user skips the commercials 202 a, 202 b, asshown by downward arrows 208 a, 208 b, respectively. However, the useraccepts the commercial 202 c as shown by an upward arrow 208 c. Based onthe user's reactions, the video delivery system 100 may then retrievethe user profile 206 a or portions of the profile 206 a and assigninitial attributes to the commercials 202 a-c.

For example, the video delivery system 100 may initialize the attributevalues in the profiles 204 a-c as shown by updated profiles 212 a, 212b, 212 c. Because the user accepted the commercial 202 c, the process200 assigns the values for the user profile 206 a to the commercial 202c. Because the user skipped the commercials 202 a, 202 b, the process200 initially assigns the complement of the values in the user profile206 a. For example, a complement of an attribute value of 80 in a valuerange of 0-100 may be an attribute value 20.

In appropriate implementations, the scale for parameters can rangebetween −1 and 1. For example, a user's preference for loudness may begraded between −1 (likes only quiet commercials) and 1 (likes only loudcommercials). Then a profile parameter can be calculated for acommercial as a “weighted average” of user's profiles, where the weightis 1 if the user watched the commercial, and −1 if he skipped it. So ifuser A has 0.7 for loudness in his profile and he accepts a commercial,user B with 0.2 skips it, and user C with −0.5 skips it, the resultingloudness profile for the commercial would be(0.7*1+0.2*(−1)+(−0.5)*(−1))/3=0.33. These weights may be adjusted inappropriate situations depending on how much of the commercial the userwatches, e.g. −1 for “skipped immediately” vs. 1 for “watched entirely.”

Next, the process 200 presents the commercials 202 a-c to a userassociated with the profile 206 b, as shown by the profiles for thecommercial moving downward through the figure. Based on the receivedreactions (indicated by up and down arrows), the process 200 may adjustthe attributes in the profiles 212 a-c. In some implementations, theprocess 200 may use a weighted function to adjust the attributes for thecommercials 202 a-c. For example, the process 200 may compute anadjustment value for an accepted commercial by first determining adifference between an attribute value in a user's profile and a presentattribute value in a commercial profile, and then multiplying thedifference with a step size. Also, the process 200 may compute anadjustment value for a skipped commercial by first determining adifference between a complement of an attribute value in a user'sprofile and a present attribute value in a commercial profile, and thenmultiplying the difference by a step size.

As indicated by the up and down arrows, the second viewer skips thecommercials 202 a, 202 c but watches the commercial 202 b. The process200 may then adjust the profiles 212 a-c to profiles 214 a-c using thesecond viewer's profile 206 b. In other implementations, the process 200may store all received reactions associated with user profiles andgenerate a best-fit value for each of the attributes based on the storedreactions. For example, the process 200 may use an artificial neuralnetwork, a least square algorithm, or other fitting algorithms, togenerate a best-fit value using the stored data. Also, a system maysimply supply a rating to a commercial and increase the rating if thecommercial is accepted, and lower the rating if it is rejected, withoutregard to viewer profiles.

The process 200 may then present the commercials 202 a-c to a viewerassociated with the profile 206 c. As shown, the viewer skipscommercials 202 b, 202 c but not commercial 202 a. The process 200 maythen adjust the profiles 214 a-c to profiles 215 a-c as shown.Similarly, the process 200 may present the commercials 202 a-c to theviewer with profile 206 d, and may update commercial profiles 216 a, 216b, 216 c, accordingly.

In some implementations, the process 200 may continue to adjust theprofiles of the commercials 202 a-c when the commercials are presentedto other users. In other implementations, the system 100 may stopadjusting the profiles 202 a-c when a fixed number of adjustments havebeen made. Also, although the commercials 202 a-c are shown for clarityas being presented in the same order to the same viewers, thecommercials may simply be deployed across a large number of viewers asdevices associated with the viewers call for commercials. For example, alarge number of viewers may be watching videos on their computerssimultaneously, and a process associated with process 200 may beselected appropriate commercials to display for all of the variousviewers. Of course, although commercials are used as an exemplary formathere, various other forms of promotional items may also be selected andprovided in similar manners.

As noted above, advertisers may also provide their own profile for acommercial. The advertisers may either lock the profile of a commercialso that the profile cannot be changed, or may allow the profile tofloat. For example, an advertiser may produce a commercial that istargeted to a particular user group. By locking the profile of acommercial, the advertiser can target the commercial to reach aparticular group of viewers. For example, the advertiser may assign aset of fixed attribute values, such as household income and age, to acommercial that demographically define a group of viewers. Also, anadvertiser may select a program or group of programs during which apromotion is to air. For example, a pharmaceutical company may set acommercials profile so that it airs only during news programming or evenonly during 60 Minutes, while an advertiser of a convertible car maytarget only music programs or programs associate with a youngerdemographic.

In another example, an advertiser may produce a commercial with noparticular target user group to be reached. For example, the advertisermay want the commercial to reach all possible users first and graduallyfocus on some users that may be more interested in the commercial. Byletting the commercial's profile float, the commercial may reach allviewers and then be directed to the viewers who may be more interestedin the commercial. During the profiling process 200, a commercial maydevelop a profile that enables the commercial to be viewed by users whoare more likely to accept the commercial.

FIG. 2B shows an exemplary process 220 for profiling a user based onreactions of the user to various profiled commercials. In the depictedexample, the process 220 includes the commercial profiles 216 a-c thatwere established in FIG. 1A and relating to Commercials #1, #2, and #3,and a user profile 206 e of a new user 221. At the beginning of theprocess 220, the user's profile 206 e may not have attributes assignedto it (or it may have attributes assigned to certain parameters and haveother attributes left blank). For example, the user 221 may be a newuser of the video delivery system 100. As another example, the user 221may reset his/her profile because, for example, the user 221 isdisappointed with the commercials the system is presenting. As anotherexample, the broadcasting network may also reset the profile of the user221 because, for example, the user 221 skips most of commercialsselected according to the user's profile 206 e. Alternatively, theinformation about preferences may be kept for only a single session, andmay thus need to be rebuilt with each session.

The user may also explicitly set some or all attributes associated witha profile. For example, the user may identify a gender and a birthdateor age, or may choose various products or topics for commercials thatthe user prefers, and may then allow the system to infer otherattributes based on the user's acceptance or rejection of commercials.Alternatively, the user may select a group that matches the user, andthe profile may be set to match that group.

The process 220 may first initialize attributes in the profile 206 e bypresenting a commercial, such as the commercial 202 c, to the user 221.As shown by the down arrow next to the commercial profile 216 c, theuser 206 e skips the commercial 202 c. Therefore, the process 220 mayinitialize attributes as shown in a profile state 222. The profile state222 includes attribute values that are complements of the attributevalues in the profile 216 c(or negative values if a −1 to +1 range isused). Next, the process 220 may present the commercial 202 b to theuser. As shown in FIG. 2B, the user 221 accepts the commercial 202 b.The process 220 may then adjust the profile state 222 toward theattributes in the commercial profile 216 b, as shown in an updatedprofile state 224.

Also, the process 220 may use the reaction of the user 206 e todetermine a particular product that the user 221 is interested in. Forexample, because the user 221 accepts the commercial 202 b, which is amovie commercial, the process 220 may profile that the user 221 isinterested in movies as shown in the profile 224.

Then, the process 220 may present the commercial 202 a to the user 221.The user 221 skips the commercial 202 a. In the depicted example, theprocess 220 may adjust the profile 206 e by updating the profile 206 eusing a complement of the attribute values in the profile 216 a. Theadjustments to the user's profile may then continue until the profile isreasonably certain (e.g., as determined statistically) or may continuecontinuously, as the user 221 accepts and rejects further commercials.As noted above, the user's profile may also be reset periodically toensure that an inaccurately presumed profile does not stayed locked infor the user. Also, various out-of-profile items may be shown to theuser 221 periodically so as to test the accuracy of the profile, e.g.,if the user watches an out-of-profile item, then the profile may need tobe changed.

FIG. 2C shows another exemplary process 240 for generating a userprofile for a particular user. The process is similar to that discussedabove, but is shown in additional detail for further clarity. During theprocess 240, five commercials 242 a, 242 b, 242 c, 242 d, 242 e arepresented to a user. Each of the commercials 242 a-e is associated witha profile. For example, the commercial 242 a is associated with aprofile 244.

The profile 244 includes various fields, such as a unique identification(ID) number for the commercial, a format, an action, a sound, a color, astyle, an age, a gender, and a type. The profile 244 may also containmore or fewer fields, or parameters, such as a single popularity scorefield. A system such as video delivery system 100 may use the ID numberto identify a commercial. The format field may indicate a specificformat of the item, such as a standard commercial or other kind ofadvertisement, such as a “squeeze” type advertisement (e.g., one that isshown on a portion of a display, such as while credits are rolling), abanner advertisement, or other types of advertisements. Some types ofadvertisement will be described with reference to FIG. 3 below. In thedepicted example, the listed fields are the same between a commercialprofile and a user profile, so it is easier to assign profiles to eithera commercial or a user. In other implementations, the commercialprofiles and the user profiles may also have some different fields.

Programs to be aired around commercials may also have profiles that mayuse the same or different attributes as those for the viewers and thecommercials. For example, programs may simply have attributes for genderand age, and those attributes may be used to infer other attributesabout viewers of the programs (e.g., a male, 18-24 movie may haveviewers who like “action”). Thus, commercials having an “action”attribute may be shown during such a movie (or commercials for the moviemay be shown during other “action” videos), regardless of the profile ofa viewer, or even if profiles of viewers are not stored or known.

The process 240 also includes a user with a profile 246 with a user ID12613113. The profile 246 includes some demographic information of theuser, such as income, age, and gender. This information may be obtainedwhen the user registers for the video service or it may be discoveredduring the user profiling process (e.g., the process 220 or 240).

As shown in FIG. 2C, the user watched the five commercials 242 a-e. Theuser reactions are represented by faces 248, 250, 252, 254, 256. Asmiling face, such as the face 250, 252, 256 represents that the userwatched a commercial. An unhappy face, such as the face 248, 254,represents that the user skipped a commercial.

A commercial may be considered to have been watched if the entire mediafile for a commercial was played to the user, or if some substantialportion was played. A commercial may be considered to have been skippedif only a small part of the commercial played, such as less than 5seconds or less than even 20 seconds of a commercial, or if a preview ofthe commercial (such as a single frame) was shown and the commercial wasskipped. Such information may be obtained by tracking the streaming of avideo feed or may also be stored on a device local to the viewer andreported back to a central system, like that shown in more detail below.Such reporting may occur independently as part of a billing operationfor advertisers, so as to track the number of “impressions” of eachadvertisement. The status of a commercial as skipped or watched may bedefined by a legal agreement between a broadcaster and an advertiser(e.g., an advertiser refuses to pay unless an entire commercial isdisplayed to a user).

Using the reactions information, the process 240 may generate the userprofile 246. For example, the process 240 may determine that the userprefers a standard 15 format commercial (e.g., a normal televisioncommercial 15 seconds long) because the commercials 242 b, 242 c, 242 eare standard 15 format, and the user watched them. The process 240 maydetermine that the user likes medium action commercials because thecommercials 242 b, 242 c both have medium action, and the user watchedthem. The process 240 may determine that the user likes soft musiccommercials because the commercials 242 c, 242 e both have soft music,and the user watched them. The process 240 may determine that the userlikes colorful commercials because the user watched all thebright-colored commercials 242 b, 242 c, and skipped commercials 242 a,242 d with medium or dull color. Also, from what the user watches andskips, the process 240 may profile that the user prefers commercialsabout automotive and beverage, and does not like commercials of sportsgoods and low-end restaurants, or other similar vertical orsemi-vertical categories.

FIG. 3 shows an exemplary timing diagram 300 that illustrates a timelineof a 30-minute television program. In general, the figure shows how theformat of promotional items may be targeted for a user in addition tothe style or content of the commercial. Typically, a program is brokenup to have certain commercial break periods evenly spaced through theprogram. Such a system may be inflexible, in that it forces advertisersto produce commercials of a certain length (e.g., 15, 30, or 60 seconds)and forces viewers to watch that format of commercials. However,broadcasters may simply be interested in obtaining a certain amount ofadvertising revenue from a program, and may be indifferent to how theadvertising is delivered.

For example, assume that a broadcaster wishes to obtain $1 ofadvertising revenue from each viewer-showing of a one-hour drama (whichmight be less than 50 minutes because of the advertising breaks in atraditional advertising model). Perhaps many advertisers are willing tospend a nickel-per-viewer fee to run one of 20 commercials during theprogram. At the same time, perhaps one advertiser is willing to pay$1-per-viewer to have the viewer fill out a consumer survey and perhapsto provide additional information such as a mailing address. Certainusers may be interested in taking 5-10 minutes to fill out such a surveybefore starting the program if it will allow them to watch the entireprogram uninterrupted and will prevent them from watching 10 minutes ofcommercials. As another alternative, the broadcaster may offer the usersan option to pay $2 (such as through a micro-payment system, such asGBuy) to exchange for skipping all commercials.

The timing diagram 300 shows how such a viewer may be provided withtargeted promotional formats in addition to, or as an alternative to,targeted promotional styles. The timing diagram 300 includes a timeline302 that represents the length of the television program. The un-shadedportion of the timeline 302 represents times at which the program willbe broadcast. In this example, the program is a 30-minute comedyprogram. The shaded portions of the timeline 302 represent timings oftraditional advertising slots 304. As shown, one advertising slot 304 abegins at time 00:48 and ends at time 2:48. Another advertising slot 304b begins at time 12:00 and ends at time 14:00. A third advertising slot304 c begins at time 20:00 and ends at time 21:30, and a fourthadvertising slot 304 d begins at time 29:30 and ends at time 30:30.Viewers of the popular drama “24” will appreciate the location andtiming of traditional advertising slots. The slots in the figurerepresent a set of commercials after the introduction of the program,two commercials during the program, and a closing set of commercialsbefore another program starts. The particular number and timing of suchslots may vary.

For example, a system may select, based on a user's profile, commercialsto be presented to the user during the advertising slots 304 a-d. Thesystem may select commercials with formats and styles that align withthe user's preferences, as discussed above. For example, a commercialmay include a 30-second format, a 60-second format, and a 15-secondformat. Depending on the preference indicated in the user's profile, thesystem may present one of the formats during the advertising slots 304in the television program. For example, because the user profile 246indicates that a standard 15-second commercial is preferred, the systemmay, instead of selecting 30-second commercials, select 15-secondcommercials for presentation to the user.

In some implementations, the video delivery system 100 may also presentadvertisements while the television program is being shown. The timingdiagram 300 includes commercials 306 that are not in a standard format,to represent such advertisements. As shown, a commercial 308i a may beshown during a defined slot 306 a as a fly-over form of commercial. Sucha commercial displays a small object that overlays on the televisionprogram for a period of time. The defined slot 306 a may be a speciallydefined period (with, e.g., a defined start and a defined maximumduration) for the program, so as to occur during a time in the programwhen the action is at an ebb so that the commercial will notunnecessarily distract from the program. The program may be encoded witha signal that indicates when such a period is to begin and how long itis to last, so that fly-over advertisements may be selected anddisplayed by a system.

Commercial 308 b may be a banner commercial that displays a banner ofinformation (e.g., text, image, or both) at the bottom of a televisiondisplay during a time slot 306 b, for a period of time, such as in astatic, animated, or scrolling display. Again, the start and duration ofthe time slot may be defined for the particular program, and may bestored in a file holding the program in the form of metadata that isaccessible to the system. Banner commercials or other displays, such asGoogle web clip displays, that are out of the way for viewing and can bedisplayed while a program is being displayed, may be provided without anoption for the user to skip them. For example, if a user skips asufficient number of standard commercials, the user may simply bedisplayed advertisements at the edge of the screen like banner orscrolling advertisements. Such out-of-the-way advertisements mayalternatively be accelerated or skipped, such as by a skip button, or bypermitting a user to accelerate the scrolling of the advertisement.

Commercial 308 c may be a “squeeze” commercial that displays acommercial at the bottom right corner of the display 308 c during theend of the television program, such as while the credits are rolling. Insome implementations, a system may, for example, randomly select ordetermine from a user profile, times to present the non-standardcommercials. For example, a system may determine that the user prefers along period of squeeze commercials at the end of a television programthan having long advertising slots. Then, the system may, for example,present a five minute long squeeze commercial at the end of thetelevision program and present a relatively short advertising slots 304within the program. (However, such as approach may encourage the user toabandon the program early.)

The commercials presented in the advertising slots 304 a-d take over theentire display of a television, rather than simply supplementing theprogram display as with the other formats. Therefore, the televisionprogram stops while the commercials are running. In someimplementations, a system may also present commercials in other ways.For example, a system may present a large advertising slot with a singlecommercial (e.g., a 4 minute mini-movie for a BMW car) at the beginningof a television program. In some implementations, the user may select towatch the long advertising slot and obtain a television program withoutbeing shown any more advertising slots 304 for the rest of thetelevision program.

As another example, depending on the user profile, a system may alsoinsert, eliminate, or modify the scheduled advertising slots 304 a-d.For example, a system may eliminate one or more of the advertising slots304 a-d from the timeline 302 when the user profile indicates that theuser does not prefer standard commercials. Instead, the system mayinsert more non-standard commercials, such as the commercials 306 a-c,in the television program. As another example, a user profile mayindicate that the user prefers longer advertising slots but with lowerfrequency. The system may then lengthen, for example, the advertisingslot 304 a and 304 c, and eliminate the advertising slot 304 b for theuser.

Such a video delivery system may flexibly select commercials thatbenefit advertisers by allowing the advertisers to better target theircommercials. For example, the advertiser may better target theiradvertisements to the viewers by defining a profile that may indicatedemographic data of target viewers. A system operator, such as abroadcaster, may also benefit by being able to deliver commercials tothe right viewers, and to thereby obtain higher rates from advertisers.A video delivery system may also help viewers to enhance their viewingexperience by selecting commercials in a style and format that they moreenjoy.

In certain implementations, users may be allowed to skip particularcommercials, but required to watch or accept a set number of commercialsin order to watch a program. The required number may be, for example, aset integer, such as 11 commercials or ad impressions (which may be ameasure of the impact of an ad, so that a traditional commercial mayhave a higher impression number than does a banner advertisement).Alternatively, the required number may correspond to a dollar amount ofpaid advertising, so that advertisements are displayed until the viewerhas watched enough advertisements to create a set value of advertisingrevenue for a broadcast system.

Preference logs may also be stored by a system to permit post hocanalysis or handling of viewer actions. For example, a log may containfields for an promotional item ID, a viewer ID, the time the item wasdisplayed, a program ID representing the program the viewer was watchingwhen the advertisement was displayed, and the amount of time the viewerspent watching the item (and/or a binary indicator of whether the userwatched the item or not). The preference logs may be analyzed, forexample, to determine the popularity of a particular item (such as afraction reflecting the number of times the item was accepted, dividedby the number of times it was shown). In more complex scenarios, theitem may be connected to the various profiles of viewers who were shownthe item, and the item's profile may be affected by a system as aresult.

The logs may also permit a system to analyze groups of reactions topromotional items for various purposes. For example, where a number ofreactions at a particular computer indicate that the current viewer'sprofile is substantially different than a prior profile associated withthe computer, a system may infer that a different person is using thecomputer, and may use preference logs to “step back” through theviewer's actions from the present session (e.g., by applying to theviewer's profile the inverse for all promotional items shown to theviewer during a session) so as to erase the effect that session has onthe profile for the original viewer who used the computer. Similaranalysis may be used to identify a particular viewer where a number ofviewers regularly used the same viewing device.

Likewise, when a number of items have been viewed with no rejections, asystem may infer that the viewer has either left the room or is notpaying attention. I such a situation, the viewer's acceptance of itemsmay not reflect accurately on the viewer's preferences, and preferencelogs may be used to step back through a session and remove the effectsof the session on the viewer's profile.

FIGS. 4A-B show two exemplary systems that may implement the techniquesdescribed here. In general, FIG. 4A shows a system 400, such as a systemthat may be implemented using a personal video recorder or similardevice that stores and selects programs and may also store promotionalitems. FIG. 4B shows a system 402, such as a system that may beimplemented using a standard desktop computer, that receives streamingvideo or similar video delivery, where programs and promotional itemsare stored at, and scheduled at, a central server or servers.

As shown in FIG. 4A, a system 400 is configured to deliver promotionalitems and programs to users. The system 400 includes a central system410, a network 418, a video selection device 420, and a television 428,or other sort of video monitor (such as a computer monitor). The centralsystem 410 may include a video server that transmits video and otherdata to the video selection device 420 via the network 418. For example,the central system 410 may be a video broadcasting system that transmitsvideo to the video selection device 420 via a broadcasting network, suchas a wired, wireless, or combined wired/wireless network. In anotherexample, the network 418 may include the internet, which the centralsystem 410 may use to transmit video data streams or files to the videoselection device 420.

The central system 410 may also include a profile database 417, whichmay be used in appropriate circumstances to select promotional items totransmit to various users, and may also be accessed by the operator ofthe central system 410 or by others, such as advertisers (who may wantto analyze demographic data about the system 400). Although shown as asingle entity, central system 410 may include multiple devices,including devices at one location or at multiple locations. For example,profile database 417 may be housed at a central location, while videoservers that are part of central system 410 may be distributed to manydifferent locations in data centers that are configured to be closer tothe end users, and to thereby minimize data traffic across a network.

The system 400 also includes a computer 440 that is connected to thenetwork 418. In some implementations, the computer 440 may access datain the central system 410 and the video selection device 420 to, forexample, perform analysis on the user' reactions, user profiles (such asby accessing profile database 417), and advertisement profiles. Thecomputer 440 may also be configured to display videos along withpromotional items.

The video selection device 420 is shown as connected to the television428. The video selection device 420 may be part of a television set ormay be attached to a television set such as in the case of a personalvideo recorder (PVR), and may be a device installed in a personalcomputer or a software program in a computer. In addition, the videoselection device 420 may be part of a personal digital assistant or asmartphone, among other such devices.

The central system 410 includes an interface 412, a promotion selector414, and a promotion database 416. The central system 410 may transmitpromotions to the video selector 420 using the interface 412, and mayalso transmit programs in appropriate circumstances. For example, in anIPTV implementation, the central system 410 (whether implemented in acommon server or a number of different servers) may transmit allcomponents of a video stream to the video selector 420. Alternatively,programs may be transmitted by standard mechanisms such as satellite orover-the-air broadcast, and commercials or other promotional items maybe sent to video selector 420 via network 418, for later insertion intothe programs.

In some implementations, the promotion selector 414 may selectpromotions to be sent to the video selection device 420. For example,the central system 410 may respond to a request from the video selectiondevice 420 for commercials. The request may include for example, variousparameters identifying the type of commercial needed—parameters that maybe assigned to selection device 420 based on past actions by the user ofselection device 420. The requests may occur, for example, at a definedtime before the selection device 420 will need to present the items to auser, or at a time when a program starts to be presented to the user.

The central system 410 may select and transmit one or more commercialssuch as in the form of a digital video file, to the video selectiondevice 420. The commercials may be selected by the central system 410based on a profile associated with the selection device 420, or may, asshown in this figure, simply send a commercial that is currently beingrun by an advertiser and for which an advertiser will pay money. Thecentral system 410 may also make a selection of commercial based on theprogram the person is watching, but that is independent of the user'sprofile. In such a situation, the request may include one or morearguments identifying the program.

In another example, the promotion selector 414 may update promotionalitems (e.g., weekly or biweekly) such as commercials in the videoselection device 420, by selecting a set of promotions and sending theset to the video selection device 420. Specifically, the selectiondevice 420 may store a relatively large number of promotional items, andmay carry out the logic for selecting an appropriate item for a user.

The video selection device 420 includes a program scheduler 422, a videodriver 424, and a programs and promotions database 426. The programscheduler 422 determines whether a particular item is to be shown to auser, including programs and also promotions, such as commercials. Forexample, the program scheduler 422 may receive commands from the user todisplay a particular program. The program scheduler 422 may also trackthe appropriate locations identified in the program for presentingpromotional materials. According to the program schedule and a userprofile, the program scheduler 422 may select one or more commercials tobe displayed to the user during the program. The program scheduler maypass one or more parameters that help identify a desired profile for apromotion so that a viewer is shown only items that he or she prefers.

The program and promotions database 426 stores video files and similaritems containing content for programs and for promotional items such ascommercials. In some implementations, the programs and promotionsdatabase 426 may be a non-removable hard disk storage. The programscheduler 422 receives content from the programs and promotions database426, which may store various files relating to programs and commercials,such as in way format, mpeg format, or other appropriate formats. Theprograms and promotion database 426 may also store metadata about thoseprograms and promotions including, for example, how long the programsand promotions are, what the programs and promotions are about, userprofiles for promotions, and so on. After selection, the programscheduler 420 may use the video driver 424 to display the selectedcontent on the television 428.

In operation, the system 400 may load most or all of the displayablecontent in the programs and promotions database 426. Using the programscheduler 422 and the programs and promotions database 426, a user maypause or rewind to repeat video content. In some implementations, theprogram scheduler 422 may also allow a user to specify which programs tobe retrieved from the central system 410 (or from programs andpromotions database 426), by time, for example, by entering a programtitle, and/or by specifying combinations of genre, actors, directors,etc. The program scheduler 422 may then select and retrieve thespecified programs from the database 426 or from the central system 410.In addition to scheduling the retrieval of a program, the programscheduler 422 may also control the display of the program to a viewer.

The program scheduler 422 may also retrieve programs and promotions fromthe central system 410 based on stored user profiles. For programs, thescheduler may schedule recording sessions for programs, and generallywaits for real-time commands from a user before playing recordedprograms.

The video selection device 420 may store one or more user profiles,indicating the user's preference. For example, the video selectiondevice 420 may obtain user preferences when a user rates a programfavorably or unfavorably (e.g., by assigning number of apples to theprogram, where five stars being most favorable, and zero stars beingleast favorable). In another example, the video selection device 420 maygenerate a user profile based on a viewing habit of the user. In someimplementations, such user profile may be an augmentation of the userprofiles described with respect to FIGS. 2B and 2C.

Based on a user profile, the program scheduler 422 or the central system410 may determine which promotional items in the system 400 should beretrieved into the video selection system 420. Additionally, users mayskip an item presented by the program scheduler 422. When a commercialor other item is skipped, the program scheduler 422 may select anothercommercial to be presented, and may update the user's profile, theskipped advertisement profile, or both. The scheduler may also provideinformation to central system 410, so that, for example, the centralsystem 410 may update a promotion item profile. The scheduler 422 mayalso enforce a requirement that a certain number of commercials bewatched, while letting a viewer skip as many commercials as is possiblegiven the number of available commercials.

The program scheduler 422 may also place promotional items into oraround television programs. For example, the program scheduler 422 mayplace promotional items in regular advertising slots (e.g., theadvertising slots 304 in FIG. 3) and may place promotional items duringthe program (e.g., the non-standard advertisement 306 in FIG. 3). Forexample, when a flag or other indicator in a video file of a program istriggered to indicate that a promotional item needs to be displayed atthat point, program scheduler 422 may select an item and begindisplaying it while pausing or otherwise affecting the display of themain program. By selecting from various formats of advertisement to bepresented, the program scheduler 422 may thus determine and edit aprogram to display a selected advertisement.

As shown in FIG. 4B, another system 402 is configured to transmit videostreams to viewers via a network. For example, the system 402 may be anInternet Protocol Television (IPTV) system that delivers video programsto viewers using the Internet Protocol (IP) over a broadband connection.The system may transmit content in real-time as it is being watched by aviewer, such as in the form of a video stream. In general, system 402 issimilar to system 400, but more of the content-selectionresponsibilities are borne by the central system 432 rather than by thelocal system 448.

The system 402 includes a central system 432, a network 446, and a localsystem 448. The central system 432 may transmit via the network 446encoded video data in the form of a video stream or other videotransmission format to the local system 448, which may include apersonal computer or similar device. The system 402 also includes avideo monitor 454 (which may be part of a computer system or a standardtelevision) and a computer 456. The local system 448 may display thereceived video data on the monitor 454.

The central system 432 includes an interface 434, a streaming videoencoder 436, a program scheduler 438, a profiles database 440, a programvideo database 442, and a promotional video database 444. The centralsystem 432 may use the interface 434 to transmit video data to theremote system 448 via the network 446. The streaming video encoder 436loads programs and promotions from the program video database 442 andthe promotional video database 444, respectively.

In some implementations, the streaming video encoder 436 may encode thevideo data into a specified streaming format. The video streamingencoder 436 may encode the video data into different sizes or speedssuitable for an internet connection of a user. For example, IPTV mayencode a video data stream in Moving Pictures Experts Group (MPEG) layer2 Transport stream or in the MPEG4 H.264 format. For some IPTV systems,the video streaming encoder 436 may also encode the video data intounderlying protocols used for IPTV (e.g., IGMP version 2 for channelchange signaling for live TV, RTSP for Video on Demand, etc.).

The video streaming encoder 436 may also place promotional videos into aprogram video according to the instruction from the program scheduler438. The program scheduler 438 receives profile data from the profilesdatabase 440. Based on data in the profiles database 440, the programscheduler 438 may instruct the streaming video encoder 436 as to whichprograms and promotions are to be transmitted, and how and in what orderand at what time, the programs and promotions are to be presented. Forexample, the program scheduler 438 may instruct the streaming videoencoder 436 to load a car commercial in a banner format to be presentedto the user at a particular point in a video currently being streamed toa user The streaming video encoder 436 may then superimpose the bannerad over or next to the video.

The local system 448 includes a processor 450 and a video driver 452.The processor 450 may process (e.g., decode, decompress, etc.) thereceived video stream. Then, the processor 450 may send the processedvideo stream to the video driver 452 to be displayed in the television454. The processor 450 may be one or more of a general microprocessor(e.g., an Intel Pentium chip) and a specialized video processor, such asa processor situated on a video driver card. The video may be stored onand accessed from memory such as volatile memory in the form of randomaccess memory (RAM) on the local system 448.

The central system 432 may select items to be transmitted to the localsystem 448 depending on the user profile of the local system 448. Insome implementations, the local system 448 may include an identifier,such as an IP address or a web cookie, which identifies the user. Forexample, when the central system 432 receives a request from the localsystem 448 for video data, the central system 432 may respond bychecking the identifiers of the local system 448. The central system 432may then identify the user of the local system 448 and may retrieve auser profile of the identified user from the profiles database 440.Using the retrieved user profile, the program scheduler 438 maydetermine, for example, styles, types, and/or formats that may beacceptable by the user.

The selection of appropriate items may also be based on a category suchas a vertical category associated with the item, such as cosmetics,travel, investing, religion, etc. Such factors may also include theuser's reaction to particular types of programming, such as the userskipping movie trailers on videos of one type but not skipping the sametrailers on videos of another type.

In some implementations, the program scheduler 438 may select suitablepromotions from the promotion video database 444 and the requested videofrom the program video database 442 using the streaming video recorder436. The streaming video encoder 436 may then encode the retrievedvideos (including the promotion video and program video). The programscheduler may also help ensure that the transmitted stream movesseamlessly from the program, to the commercials, and back to theprogram.

In the encoding process, the streaming video encoder 436 may also mixthe promotional video and the program video into one video data streamto be transmitted to the local system 448. Based on the type of thepromotion, the streaming video encoder 436 can mix the promotion intothe program in different ways. For example, the streaming video encoder436 may overlay a promotional video on top of the program video.

In another example, the streaming video encoder 436 may display a banneritem at the bottom of the program video. In another example, thestreaming video encoder 436 may also stop the streaming of the programand display one or more promotional videos (e.g., commercials) beforeresuming the program. In another example, the streaming video encoder436 may display a survey for the user to complete before starting theprogram, or may transfer control to another mechanism that presents thesurvey. If the user fills in the survey completely, the streaming videoencoder 436 may then decrease the frequency of items to be displayed inthe video data stream, or eliminate any further promotional items. In asimilar manner, the streaming video encoder may pass control to apayment system that receives payment from a viewer and thereafterreduces or eliminates further display of promotional material. Inaddition, selection of promotional items by a viewer can redirect theviewer, for example, to a web site associated with an advertiser whilepausing or continuing to play a program.

FIG. 5 shows exemplary data for advertisement profiling. An exemplaryadvertisement profile 500 includes one or more of several fields: aformat field 502, an action field 504, a sound field 506, a color field508, a style field 510, an age field 512, a gender field 514, and aproduct type field 516. The fields may be selected to represent featuresthat viewers perceive as desirable or undesirable in advertising. Thevalues in the fields are values that permit segmentation of viewers andthe advertisements to be displayed to the viewers. As shown, most of thevalues are multiple choice, but ranges (e.g., from 1 to 10 or 1 to 100)may be used, such as for the “action” field. In some implementations,the advertisement profile 500 may be associated with an advertisement.

The format field 502 includes format properties of an advertisement. Asshown, the available properties in the format field 502 are standard 30(representing a traditional 30-second commercial), standard 15(representing a 15-second commercial), banner, fly over, squeeze, andinteractive. A commercial with the banner format is an advertisementwith text and/or images that appears as a banner on the display (e.g.,the commercial 306 b in FIG. 3). A commercial with the fly over formatis a commercial that appears as a fly over image on the display (e.g.,the commercial 306 a in FIG. 3). A commercial with the squeeze format isa commercial that appears in a portion of the display, reducing the sizeof the full display of the program (e.g., the commercial 306 b in FIG.3). A commercial with the interactive format is an advertisement thatrequires user interaction to be completed (e.g., a survey). Otherformats may also be included.

The action field 504 includes a high action property, a medium actionproperty, and a low action property, each of which indicates a level ofaction that appears in a commercial. For example, automotive commercialstypically have high action, while pharmaceutical commercials typicallyhave low action.

The sound field 506 includes a high music property, a medium musicproperty, and a low music property, each of which indicates a soundlevel of music (or other sound) that appears in a commercial. The soundfield 506 also includes a high voice property, a medium voice property,and a low voice property, each of which indicates a voice level of musicappears in a commercial. For example, a commercial that enters withrock-and-roll music would likely be classified as “high music,” while acommercial for an incontinence product would likely be classified a “lowvoice” sound level.

The color field 508 includes a bright property, a medium property, and adull property, each of which indicates a color tone appears in acommercial. The style field 510 includes an action property, a humorproperty, a romance property, and an informative property, each of whichindicates a style in a commercial. For example, automotive commercialsare often “action” commercials, while beer commercials are often “humor”commercials.

The age field 512 includes age properties of an advertisement that mayindicate a target age group for the advertisement. As shown, theavailable properties in the format field 502 are a young child, a youngteen, a old teen, a college, a 20s, a 30s, a 40s, a 50s, a 60s, and a70+ categories. The gender field 514 includes gender properties of anadvertisement that may indicate a target gender for the advertisement.

The product type field 516 includes different product types of a item.For example, the product type field 516 may include autos, medicine,health-related products, high end food (e.g., organic food and steak),low end food (e.g., candy), high end restaurants (e.g., seafood andsteak houses), low end restaurant (e.g., fast food restaurants), hygieneproducts (e.g., shampoo and toothpaste), travel-related products (e.g.,airlines, hotels, rental cars, etc.), shopping (e.g., Mall of America),beverages (e.g., beer and soda), and/or other product types, which mayin certain circumstances be referenced as advertising verticals.

In some implementations, the fields of the advertisement profile 500 maybe completed and fixed by an advertiser, so that the advertiser mayspecify a targeted viewer group for the advertisement. In otherimplementations, the advertisement profile 500 may include somemodifiable fields that may be modified by the video delivering system100. For example, the format field 502 and the product type field 516may not be modifiable. However, the other fields may be modifiable bythe process 220.

In addition, a promotional item may be provided with a “time” field thatdefines the time period in which the program should be run. The fieldmay have a number of aspects. For example, it may define a start and enddate for an advertising campaign, such as a Sunday-to-Sunday date for aweekly sale advertisement for an electronics store. It may also have atime-of-day aspect, such as by defining that the advertisement should beshown only during prime time viewing. In addition, such a field or asimilar field may identify the programs during which the advertisementis to be shown, or the type of program during which it is to be shown(e.g., during sporting events only).

Using the fields in the profile 500, a video delivery system maycategorize a item. For example, for the classic commercial “Fluffy Bun,”(which features a catch phrase “Where's the beef?”), the profile 500 mayindicate that this commercial is a standard 30 commercial for a low endrestaurant product with low action, high voice, and bright color in ahumorous style. In another example, the 1971 TV commercial featuringyoung people from around the world singing the song “I'd Like to Teachthe World to Sing (In Perfect Harmony)” on a hilltop may be categorizedby the profile 500 as a standard 30 commercial for a beverage productwith medium music and bright color. The profile may also indicate thatthe commercial is targeted to people in, for example, their teens andthe 20s. Certain fields may also contain no entry, indicating that thecommercial is not aimed at any particular subset of the field, so thatthe field is not used in classifying the commercial.

Such profile data may also be used by a system to describe viewers, asdiscussed above. By matching the mode of profiling an advertisement withthat of profiling a viewer, a match between advertisements and viewersmay be more readily achieved. Also, programs may likewise be profiled,so that appropriate advertisements are selected in the first instance tobe among the group of advertisements that may be presented to viewersduring the program. In general, these techniques may permit specific andefficient targeting on a medium—televisions and display of programmingthat is similar to television (e.g., on-line videos)—that hastraditionally had very little targeting.

FIG. 6 shows an exemplary method 600 for providing targeted videopromotional material. The method 600 may be performed by a processor ina client device (e.g., the local system 420) and/or a processor in anadvertising server (e.g., the advertising server 410). For example, themethod 600 may relate to an embodiment in which the client device mayperform much of the processing for displaying a selected program, andthe server device may respond to direct requests from the client device.

The method 600 begins in step 602 when the client device selects aprogram to be displayed. For example, the client device may receive auser selection by, for example, clicking a hyperlink or selecting aprogram from a digital TV menu. As shown, the client device may transmita request for the selected program to the server device.

After receiving the request, the server may serve a program containingpromotion points to the client in step 604. For example, the serverdevice may set one or more two-minute blocks in the selected programduring which four 30-second commercials may be shown. In anotherexample, the server device may determine times during the selectedprogram that non-standard advertisements (e.g., banner advertisements ora fly over advertisements) may be shown.

In some implementations, program producers may identify times in aprogram that are appropriate for advertising. For example, the programproducers may identify times when the viewer's full attention is notneeded to follow the program. In some implementations, a flag may beassociated with the program to mark those times. For example, theprogram scheduler 422 may identify these times and only displayadvertisement over the screen at these times. In some implementations,the server may receive the request through the interface 412 and mayretrieve the selected program from the video database 416. In otherimplementations, the server may transmit a command to the client thatinforms the client device where the promotion points should be insertedin the selected program. The start and end times for the promotions maybe referenced as promotion points.

Then, the client device displays, in step 606, the selected program. Forexample, the client device may use the video driver 424 to display theselected program on the display 428. In step 608, the client deviceselects a promotion and displays the selected promotion. For example,the client device may be displaying a program and may reach a promotionpoint in the program. The client device may then select, based on a userprofile (e.g., the user profile 246), a promotion to be displayed fromthe server device. For example, the program scheduler 422 may select acommercial from the program and promotion database 426. A group ofpossible commercials may first be established by identifying theprograms that advertisers identified for their commercials (if any) andmatching a subset with the program the viewer is currently watching.That sub-set of commercials may then have their profiles compared to aviewer's profile to determine which commercials to present to the vieweras a best match to the program and/or the user's interests.

In the depicted example, the client device may also retrieve a promotionfrom the server device by transmitting a request to the server device.The server device may then, in step 610, transmit the requestedpromotion to the client device. For example, the client device maytransmit a request for more items when the client device determines thatno suitable items are stored in the program and promotion database 426,according to the user profile.

The request from the client device may simply be for commercials ingeneral (or commercials associated with a particular program), or may bea request for particular commercials or commercials having a particularprofile. Where the request is for a particular commercial, the clientdevice may have previously been given information about profiles forcertain commercials, and may have conducted an analysis of the profilesagainst a local profile stored on the client relating to a user f theclient device. Where the request is for a commercial having a particularprofile, the client may transmit identifying information (such as an IDnumber or a list of profile values) for a user related with the clientdevice, and a server system may use that information to match a userprofile against available commercial profiles.

In step 612, the client device determines whether the displayedpromotion is viewed. For example, the client device may determine theproportion of the item that has been viewed. If the user has viewed thepromotion longer than a threshold, (e.g., 25 seconds of a 30-secondcommercial or other length portion of the 30-second commercial), thenthe client device may determine that the displayed promotion has beenviewed. If the client system determines that the promotion has beenviewed, then the client device may, in step 614, adjust the user profileand/or the advertisement profile. For example, if the advertisementprofile is not fixed, then the client device may adjust theadvertisement profile based on the user reaction and the user profile(e.g., using a process similar to the process 200). The determination ofwhether a promotion has been viewed may also be made by a server device,such as when the system provides video using a streaming approach, andmay also involve reporting the viewing of a commercial so that theadvertiser may be properly billed.

As another example, if the advertisement profile is fixed, then theclient device may adjust the user profile based on the user reaction andthe advertisement profile (e.g., using a process similar to the process220). Next, the client device may determine whether a promotion sessionis done in step 616. If it is done, the system may return to showing theprogram (act 606) and if it is not, the system may show anotherpromotion (608). For example, the client device may count the number ofadvertisement a user views. The system may allow a user to skip all ofthe promotions that they want to skip, but may also require the user tofully watch at least four promotions before the program will continue.Likewise, the system may require the user to follow activities thatgenerate a certain amount of advertising revenue or advertising points(e.g., that may correspond directly or indirectly to advertisingrevenues) before the program will continue. In this manner, users canskip promotions they do not like, but cannot entirely skip watching somesort of promotion; as a result, broadcaster may be assured of obtainingsome viewership of advertisements, and thereby increase potentialadvertising revenues.

If, in step 612, the client device determines that the promotion is notviewed, then the client system may, in step 618, determine whether adecline limit is met, e.g., because the user has skipped too manycommercials. For example, when a user skips, for example, 20 standardcommercials, the client device may determine that the user may not likestandard commercials, and may switch formats (622) and adjust the user'sprofile accordingly (620).

In some implementations, advertisers may bid values for theircommercials and the promotion limit of the user may be computed based onthe bid value of the watched commercial. For example, some advertisersmay bid a certain value to have their commercials shown to users in acertain demographic group. For example, the advertiser or the videodelivery system may classify demographic groups from a viewer's profile.For example, an advertiser for the car Audi A3 may bid a value to thevideo delivery system to show viewers who are young and earn a certainincome. Then the video delivery system may show the advertisement forthe Audi A3 to viewers who earn, for example, around $50,000-$70,000 ayear, and are in the 20s and 30s, from their profiles.

In some implementations, viewers who watched commercials with high bidvalue may spend less time watching commercials than do viewers of lowerbid value commercials. For example, a video delivery system may stopshowing commercials to a viewer when the viewer has obtained a dollar ofbid value for the broadcaster by watching commercials. Advertisers mayalso submit different bids for commercials based on other factors aboutviewers, including the identity of the program during which a promotionis to be run.

When the user finishes the program, the client system may, in step 624,report displayed promotions to the server device. Next, the serversystem may log displayed promotions in step 626. For example, the servermay log the number of each promotion displayed and bill an advertiserbased on the number of times that a promotion is displayed. Suchreporting may occur at other appropriate times, and may occurimmediately or via a preference log if a server system is streamingvideo programming and/or promotional items.

As an adjunct to the steps shown here, a system may also makedeterminations about whether a user is or is not watching a promotionalitem, as discussed above. For example, where no item of any kind isskipped during the viewing of a program, that may be an indication thata user has left the area. Also, if no activity occurs with respect to adisplay monitor (e.g., changing channels or typing on a keyboard) duringa program or for an extended period after a program is shown, it mayalso be inferred that the user has left. In such a situation, changes toa profile that were made under the assumption that the user likedcertain promotional items because the user watched them, may be reversedor prevented, because it is not fair to assume that the user evenwatched the items.

Moreover, a system may attempt to determine which user, from among agroup of users with access to a video monitor, is the user watching aparticular program. For example, some users may watch particularchannels (e.g., ESPN and FOX Sports) while other viewers may watch otherprogramming (e.g., Oxygen, Lifetime, HGTV), and viewership of a programassociated with a particular user may cause a system to use thatperson's profile when selecting commercials. Alternatively or inaddition, a system may look to other patterns of activity by an unknownuser, such as frequency of channel changing and other remote controlmanipulations. Members of a certain gender, for example, may beassociated with such activity, so that high activity on a remote controlmay cause the system to apply a particular user's profile.

FIG. 7 is a screen shot of an exemplary video display with advertising.The screen shot generally follows the form of the well-known GoogleVideo service, with a video display area 710 providing the display of astreaming video file; and an information area 744 providing informationabout the video such as a title, a rating (1 to 5 stars), a shortdescription, a number of tags, and the number of times the video hasbeen displayed. Other controls, such as in the form of hyperlinks, arealso /provided. A preview area 742 is also provided ,and shows othervideos, such as videos similar to the video currently being displayed,that a viewer may select. A single video frame from each video is shown,along with a title and a short description. In the figure, the frame andthe title are hyperlinks whose selection will cause the related video tobe displayed.

The preview area 742 may alternatively display promotional items thatare to be displayed in the future. For example, the area 742 may toggleto such a display after a video has been displayed for a certain amountof time and an advertising break is coming up. A search area 746 mayalso be provided, and may permit a viewer to enter search queries forvideos or for other services, such as the various services (maps,images, web search, etc.) offered by Google.

Promotional area 720 may also be provided, and may serve as an area inwhich banner-like advertisements are displayed during the display ofvarious videos. The advertisements may be selected to match theparticular video, or to match the characteristics of the viewer, such ascharacteristics implied by the advertisements that the viewer watchesand those that the viewer skips.

A control area 730 contains several controls for affecting the displayof a video. For example, typical play, pause, stop buttons may be shown.Also a “progress meter” may also be provided to show how much time isleft in a video, and optionally to show where particular promotionalperiods are scheduled to occur, so that a viewer can make a betterdecision about the format of promotional items to view or skip. A “skipad” control 740 is also shown, in the form of a hyperlink, to let aviewer skip a promotional item that is being displayed or is about to bedisplayed (e.g., as previewed in area 742). The skip ad control mayadvantageously provide a viewer with an extra level of control over theadvertisements that the viewer will watch. As a result, the viewer ismore likely to enjoy the viewing experience and to use the video systemmore often, and advertisers are more likely to reach viewers who aregenerally more responsive to the advertiser's products or services.

FIG. 8 is a schematic diagram of an example of a generic computer system800. The system 800 can be used for the operations described inassociation with the processes 200, 220, 240 and the method 600according to one implementation. For example, the system 800 may beincluded in either or all of the video delivery system 100, the centralsystem 410, the video selection device 420, the computer 440, thecentral system 436, the local system 448, and/or the computer 456.

The system 800 includes a processor 810, a memory 820, a storage device830, and an input/output device 840. Each of the components 810, 820,830, and 840 are interconnected using a system bus 850. The processor810 is capable of processing instructions for execution within thesystem 800. In one implementation, the processor 810 is asingle-threaded processor. In another implementation, the processor 810is a multi-threaded processor. The processor 810 is capable ofprocessing instructions stored in the memory 820 or on the storagedevice 830 to display graphical information for a user interface on theinput/output device 840.

The memory 820 stores information within the system 800. In oneimplementation, the memory 820 is a computer-readable medium. In oneimplementation, the memory 820 is a volatile memory unit. In anotherimplementation, the memory 820 is a non-volatile memory unit.

The storage device 830 is capable of providing mass storage for thesystem 800. In one implementation, the storage device 830 is acomputer-readable medium. In various different implementations, thestorage device 830 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device.

The input/output device 840 provides input/output operations for thesystem 800. In one implementation, the input/output device 840 includesa keyboard and/or pointing device. In another implementation, theinput/output device 840 includes a display unit for displaying graphicaluser interfaces.

The features described can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. The apparatus can be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device or in a propagated signal, for executionby a programmable processor; and method steps can be performed by aprogrammable processor executing a program of instructions to performfunctions of the described implementations by operating on input dataand generating output. The described features can be implementedadvantageously in one or more computer programs that are executable on aprogrammable system including at least one programmable processorcoupled to receive data and instructions from, and to transmit data andinstructions to, a data storage system, at least one input device, andat least one output device. A computer program is a set of instructionsthat can be used, directly or indirectly, in a computer to perform acertain activity or bring about a certain result. A computer program canbe written in any form of programming language, including compiled orinterpreted languages, and it can be deployed in any form, including asa stand-alone program or as a module, component, subroutine, or otherunit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors ofany kind of computer. Generally, a processor will receive instructionsand data from a read-only memory or a random access memory or both. Theessential elements of a computer are a processor for executinginstructions and one or more memories for storing instructions and data.Generally, a computer will also include, or be operatively coupled tocommunicate with, one or more mass storage devices for storing datafiles; such devices include magnetic disks, such as internal hard disksand removable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,ASICs (application-specific integrated circuits).

To provide for interaction with a user, the features can be implementedon a computer having a display device such as a CRT (cathode ray tube)or LCD (liquid crystal display) monitor for displaying information tothe user and a keyboard and a pointing device such as a mouse or atrackball by which the user can provide input to the computer.

The features can be implemented in a computer system that includes aback-end component, such as a data server, or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include, e.g., a LAN, a WAN, and thecomputers and networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork, such as the described one. The relationship of client andserver arises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

Although a few implementations have been described in detail above,other modifications are possible. Moreover, other mechanisms forpresenting a user with test case information may be used. In addition,the logic flows depicted in the figures do not require the particularorder shown, or sequential order, to achieve desirable results. Othersteps may be provided, or steps may be eliminated, from the describedflows, and other components may be added to, or removed from, thedescribed systems. Accordingly, other implementations are within thescope of the following claims.

1. A computer-implemented method comprising: providing a first videoadvertisement for display to a viewer of a video display system;receiving an indication that a user chose to skip the displaying of thefirst video advertisement; identifying for the user a characteristicthat is opposed to a characteristic of the skipped first videoadvertisement; selecting a second video advertisement using theidentified characteristic for the user; and providing the second videoadvertisement for display to the user by the video display system,wherein an advertiser is caused to be charged for display of videoadvertisements that are not skipped and not charged for display of videoadvertisements that are skipped.
 2. The computer-implemented method ofclaim 1, further comprising withholding display of a non-advertisementbased video program to the user until the user has been shown apredetermined number of video advertisements without the user choosingto skip the displaying of one of the video advertisements.
 3. Thecomputer-implemented method of claim 1, further comprising identifyingfor the user a characteristic that is consistent with a characteristicof an advertisement that is shown to the user and that is not skipped.4. The computer-implemented method of claim 1, further comprising:receiving information that indicates preferences for the user for aparticular format or formats for one or more video advertisements, theformat or formats being distinct from content of the one or more videoadvertisements; and providing the one or more video advertisements inthe preferred format or formats.
 5. The computer-implemented method ofclaim 1, wherein the video advertisements are transmitted as part of areal-time streaming video broadcast.
 6. The computer-implemented methodof claim 1, wherein receiving the indication that the user chose to skipthe displaying of the video advertisement further comprises determiningwhether a predetermined portion of the video advertisement was displayedto the user of the video display system.
 7. The computer-implementedmethod of claim 6, wherein the video advertisements are transmitted aspart of a real-time streaming video broadcast, and determining whetherthe predetermined portion of the video advertisement was displayed tothe user of the video display system comprises receiving a signal fromthe video display system that indicates a time during display of thevideo advertisement when the user stopped the video advertisement. 8.The computer-implemented method of claim 1, further comprisingidentifying the video advertisement as having been skipped by the userif it is determined that the user chose to skip the video advertisementbefore more than a predetermined percentage of the video advertisementwas displayed to the user.
 9. The computer-implemented method of claim1, further comprising: updating a preference log that indicates, forparticular viewings of corresponding video advertisements, whether thevideo advertisements were skipped or were viewed by a user.
 10. Acomputer-implemented system comprising: a database storing, on acomputer server system, video advertisements to be played to users ofvideo display systems; an interface to provide the video advertisementsin coordination with video programs for playing to the users; a videoadvertisement monitor programmed to identify occurrences of skipping ofthe video advertisements by the users of the video display systems andto cause an advertiser to be charged for display of video advertisementsthat the systems determines were not skipped and to cause the advertiserto not be charged for display of video advertisements that are skipped;and a video advertisement selector programmed to identify for userscharacteristics that are opposed to characteristics of videoadvertisements that users identified as having skipped, and to selectfuture video advertisements that match the identified usercharacteristics.
 11. The system of claim 10, wherein the videoadvertisement monitor is further programmed to withhold display of anon-advertisement based video program to a user until the user has beenshown a predetermined number of video advertisements without the userchoosing to skip the displaying of one of the video advertisements. 12.The system of claim 10, wherein the video advertisement selector isfurther programmed to identify for a user a characteristic that isconsistent with a characteristic of an advertisement shown to the userthat is not skipped.
 13. The system of claim 10, wherein the videoadvertisement selector is further programmed to receive information thatindicates preferences for a user for a particular format or formats forone or more video advertisements, the format or formats being distinctfrom content of the one or more video advertisements, and to provide theone or more video advertisements in the preferred format or formats. 14.The system of claim 10, wherein the interface further providestransmitting a video advertisement as part of a real-time streamingvideo broadcast.
 15. The system of claim 10, wherein in order toidentify an occurrence of skipping of a video advertisement by the user,the video advertisement monitor is further programmed to determinewhether a predetermined portion of the video advertisement was displayedto a user of a video display system.
 16. The system of claim 15, whereinthe interface further provides transmitting a video advertisement aspart of a real-time streaming video broadcast, and determining, by thevideo advertisement monitor, whether the predetermined portion of thevideo advertisement was displayed to the user of the video displaysystem comprises receiving a signal from the video display system thatindicates a time during display of the video advertisement when the userstopped the video advertisement.
 17. The system of claim 10, wherein inorder to identify an occurrence of skipping of a video advertisement bya user, the video advertisement monitor is further programmed todetermine that the occurrence of the user skipping the videoadvertisement is before more than a predetermined percentage of thevideo advertisement is displayed to the user.
 18. The system of claim10, wherein the video advertisement monitor is further programmed toupdate a preference log that indicates, for particular viewings ofcorresponding video advertisements, whether the video advertisementswere skipped or were viewed by a user.
 19. One or more tangiblecomputer-readable media storing instructions that, when executed by oneor more processors, perform operations comprising: providing a firstvideo advertisement for display to a viewer of a video display system;receiving an indication that a user chose to skip the displaying of thefirst video advertisement; identifying for the user a characteristicthat is opposed to a characteristic of the skipped first videoadvertisement; selecting a second video advertisement using theidentified characteristic for the user; and providing the second videoadvertisement for display to the user by the video display system,wherein an advertiser is caused to be charged for display of videoadvertisements that are not skipped and not charged for display of videoadvertisements that are skipped.
 20. The tangible computer-readablemedia of claim 19, the operations further comprising withholding displayof a non-advertisement based video program to the user until the userhas been shown a predetermined number of video advertisements withoutthe user choosing to skip the displaying of one of the videoadvertisements. 21-27. (canceled)